#pragma once

#include <vector>
#include "Event.h"
#include <windows.h>

namespace BAA {

	//I think this class is good to go

	class EventQueue
	{
	public:
		
		~EventQueue(void);

		static EventQueue * getInstance();
		void addIncomingEvent(Event * e);
		void addOutgoingEvent(Event * e);
		bool removeIncomingEvent(Event * e);
		bool removeOutgoingEvent(Event * e);
		void processQueues();

		void testClass();

		std::vector<Event *> * in();
		std::vector<Event *> * out();

	private:
		std::vector<Event *> in_events;
		std::vector<Event *> out_events;

		static EventQueue* pInstance;

	protected:
		EventQueue(void);
	};

}